

#ifndef _ILISTENER__H__
#define _ILISTENER__H__

//namespace ElementalEngine
//{
/// \class IListener
/// \brief	This class defines interfaces for listeners. Listener are
//			really callback functions, in this case
class IListener
{
public:
	virtual ~IListener() {};
	/// \fn virtual void Init()
	/// \brief Function call back when system is being started up
	virtual bool Init(void) = 0;
	/// \fn virtual void Update()
	/// \brief Function call back when system is being updated
	/// \param tickCount - Current tick count
	virtual void Update(DWORD tickCount) = 0;
	/// \fn virtual void DeInit()
	/// \brief Function call back when system is being shutdown
	virtual bool DeInit(void) = 0;
	/// \fn virtual IHashString* GetName();
	/// \brief Function call back to get the name of the listener
	virtual IHashString* GetName() = 0;
};
//}	//namespace ElementalEngine

#endif